package presentacion;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSeparator;

import dominio.Controlador;

@SuppressWarnings("serial")
public class RevistaISWSwingAPP extends javax.swing.JFrame {

	private JMenuItem helpMenuItem;
	private JMenu jMenu5;
	private JMenuItem exitMenuItem;
	private JSeparator jSeparator2;
	private JMenuItem openFileMenuItem;
	private JMenuItem newFileMenuItem;
	private JMenu jMenu3;
	private JMenuBar jMenuBar1;

	private Controlador control;
	private JMenuItem jMenuItem2;
	private JMenuItem jMenuItem1;
	private JMenu jMenu1;
	private JMenuItem mntmLoginUser;

	public RevistaISWSwingAPP() {
		super();
		setTitle("Revista ISW");
		initGUI();
		initDominio();
	}

	private void initGUI() {
		try {
			setSize(400, 300);
			{
				jMenuBar1 = new JMenuBar();
				setJMenuBar(jMenuBar1);
				{
					jMenu3 = new JMenu();
					jMenuBar1.add(jMenu3);
					jMenu3.setText("Usuario Registrado");
					{
						newFileMenuItem = new JMenuItem();
						jMenu3.add(newFileMenuItem);
						newFileMenuItem.setText("Crear");
						newFileMenuItem.addActionListener(new ActionListener() {
							@Override
							public void actionPerformed(ActionEvent evento) {
								accionCrearUsuario();
							}
						});
					}
					{
						openFileMenuItem = new JMenuItem();
						jMenu3.add(openFileMenuItem);
						openFileMenuItem.setText("Consultar");
						openFileMenuItem.addActionListener(new ActionListener() {
							@Override
							public void actionPerformed(ActionEvent evento) {
								accionMostrarUsuarios();
							}
						});
					}
					{
						mntmLoginUser = new JMenuItem("Login");
						mntmLoginUser.addActionListener(new ActionListener() {
							@Override
							public void actionPerformed(ActionEvent evento) {
								accionLoginUsuarioRegistrado();
							}
						});
						jMenu3.add(mntmLoginUser);
					}
					{
						jSeparator2 = new JSeparator();
						jMenu3.add(jSeparator2);
					}
					{
						exitMenuItem = new JMenuItem();
						jMenu3.add(exitMenuItem);
						exitMenuItem.setText("Exit");
						exitMenuItem.addActionListener(new ActionListener() {
							@Override
							public void actionPerformed(ActionEvent evento) {
								System.exit(0);
							}
						});
					}
				}
				{
					jMenu1 = new JMenu();
					jMenuBar1.add(jMenu1);
					jMenu1.setText("Areas");
					{
						jMenuItem1 = new JMenuItem();
						jMenu1.add(jMenuItem1);
						jMenuItem1.setText("Crear");
						jMenuItem1.addActionListener(new ActionListener() {
							@Override
							public void actionPerformed(ActionEvent evento) {
								accionCrearArea();
							}
						});
					}
					{
						jMenuItem2 = new JMenuItem();
						jMenu1.add(jMenuItem2);
						jMenuItem2.setText("Consultar");
						jMenuItem2.addActionListener(new ActionListener() {
							@Override
							public void actionPerformed(ActionEvent evento) {
								accionMostrarAreas();
							}
						});
					}
				}
				{
					jMenu5 = new JMenu();
					jMenuBar1.add(jMenu5);
					jMenu5.setText("Ayuda");
					{
						helpMenuItem = new JMenuItem();
						jMenu5.add(helpMenuItem);
						helpMenuItem.setText("Acerca de Gestion Revista");
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// Inicializaci�n de los objetos necesarios de la capa de negocio
	private void initDominio() {
		try {
			control = Controlador.dameControlador();
		} catch (Exception e) {
			JOptionPane.showMessageDialog(this, e.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
		}
	}

	private void accionCrearUsuario() {
		CrearUsuarioRegistradoJDialog cur = new CrearUsuarioRegistradoJDialog(this);
		cur.setModal(true);
		cur.setVisible(true);
	}

	private void accionMostrarUsuarios() {
		ConsultaUsuariosRegistradosJDialog cur = new ConsultaUsuariosRegistradosJDialog(this);
		cur.setModal(true);
		cur.cargaUsuariosRegistrados(control);
		cur.setVisible(true);
	}

	private void accionMostrarAreas() {
		ConsultaAreasJDialog cur = new ConsultaAreasJDialog(this);
		cur.setModal(true);
		cur.cargaAreas(control);
		cur.setVisible(true);
	}

	private void accionCrearArea() {
		CrearAreaJDialog cur = new CrearAreaJDialog(this);
		cur.setModal(true);
		cur.setVisible(true);
	}

	private void accionLoginUsuarioRegistrado() {
		LogueaUsuarioRegistrado cur = new LogueaUsuarioRegistrado(this);
		cur.setModal(true);
		cur.setVisible(true);
	}

}
